package vip.wangwenhao.service;


import vip.wangwenhao.page.BasePage;
import vip.wangwenhao.page.PageResult;

import java.util.List;

/**
 * @author wangwenhao
 */

public interface SolrService<T, D> {

    /**
     * 数据导入 重建索引
     */
    void dataImport();

    /**
     * 添加/更新索引
     *
     * @param t
     */
    void addOrUpdate(T t);

    /**
     * 删除索引
     *
     * @param id
     */
    void delete(String id);

    /**
     * 根据ID查询
     *
     * @param id
     * @return
     */
    T queryById(String id);

    /**
     * 单条件查询多条数据
     *
     * @param key
     * @param value
     * @return
     */
    List<T> queryByKeyAndValue(String key, String value);

    /**
     * 单条件查询一条数据
     *
     * @param key
     * @param value
     * @return
     */
    T queryByKeyAndValueLimitOne(String key, String value);

    /**
     * 多条件查询
     *
     * @param query
     * @return
     */
    PageResult<List<T>> query(BasePage query);
}